{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "a709870f",
   "metadata": {},
   "source": [
    "## MLServer"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "eceec85e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import json\n",
    "import copy\n",
    "\n",
    "def load_json(filename):\n",
    "    with open(filename, 'r') as json_file:\n",
    "        json_dict = json.load(json_file)\n",
    "    return json_dict\n",
    "\n",
    "def combine_dict(metric):\n",
    "    def _remove_key(d):\n",
    "        d_copy = copy.deepcopy(d)\n",
    "        del d_copy[\"thresholds\"]\n",
    "        return d_copy\n",
    "    \n",
    "    return {\n",
    "        \"base\": _remove_key(base[\"metrics\"][metric]),\n",
    "        \"oc_\"+str(50/50): _remove_key(oc_50[\"metrics\"][metric]),\n",
    "        \"oc_\"+str(55/50): _remove_key(oc_55[\"metrics\"][metric]),\n",
    "        \"oc_\"+str(60/50): _remove_key(oc_60[\"metrics\"][metric]),\n",
    "        \"oc_\"+str(75/50): _remove_key(oc_75[\"metrics\"][metric]),\n",
    "    }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "73e7e6a1",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "directory = \"mlserver_exp1/\"\n",
    "\n",
    "base = load_json(directory+\"base.json\")\n",
    "oc_50 = load_json(directory+\"oc_50.json\")\n",
    "oc_55 = load_json(directory+\"oc_55.json\")\n",
    "oc_60 = load_json(directory+\"oc_60.json\")\n",
    "oc_75 = load_json(directory+\"oc_75.json\")\n",
    "\n",
    "rest = combine_dict(\"http_req_duration{scenario:default}\")\n",
    "grpc = combine_dict(\"grpc_req_duration{scenario:default}\")\n",
    "\n",
    "rest_df = pd.DataFrame.from_dict(rest).T\n",
    "grpc_df = pd.DataFrame.from_dict(grpc).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "811fe289",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             min        med           max       p(90)       p(95)         avg\n",
      "base    1.977965  17.088815    111.147623   28.078783   31.667985   17.602320\n",
      "oc_1.0  2.254326  18.125998    127.669131   30.592226   35.347882   18.964346\n",
      "oc_1.1  2.372834  26.290835   8661.420331   86.360173  262.277194   73.984895\n",
      "oc_1.2  2.494908  34.027693   6958.211953  184.301494  465.058363  126.784335\n",
      "oc_1.5  2.199197  48.137473  17940.205981  529.606812  982.179263  259.793345\n"
     ]
    }
   ],
   "source": [
    "print(rest_df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "befec8df",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "from matplotlib.lines import Line2D\n",
    "import numpy as np\n",
    "\n",
    "def plot(df, title, ytick=100):\n",
    "    mins = df[\"min\"]\n",
    "    maxes = df[\"p(90)\"]\n",
    "    means = df[\"avg\"]\n",
    "    meds = df[\"med\"]\n",
    "\n",
    "    ax = plt.axes()        \n",
    "    ax.yaxis.grid(color='gray') # horizontal lines\n",
    "\n",
    "    legend_elements = [Line2D([0], [0], marker='o', color='black', label='Mean'),\n",
    "                       Line2D([0], [0], marker='o', color='blue', label='Median'),\n",
    "                       Line2D([0], [0], color='gray', lw=1, label='min-P(90)')]\n",
    "    ax.legend(handles=legend_elements, loc='upper left')\n",
    "\n",
    "    x = [\"base\", \"0% commit\", \"10% commit\", \"20% commit\", \"50% commit\"]\n",
    "\n",
    "\n",
    "\n",
    "    plt.errorbar(x, means, fmt='ok', lw=3)\n",
    "    plt.errorbar(x, meds, fmt='ok', lw=3, color='blue')\n",
    "    plt.errorbar(x, means, [means - mins, maxes - means], fmt='.k', ecolor='gray', lw=1)\n",
    "\n",
    "    plt.ylabel(\"latency (ms)\")\n",
    "    plt.title(title)\n",
    "\n",
    "    plt.yticks(np.arange(0, max(maxes)+1, ytick))\n",
    "\n",
    "    plt.rcParams[\"figure.figsize\"] = (10,5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "1d814075",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_2709855/627405957.py:24: UserWarning: color is redundantly defined by the 'color' keyword argument and the fmt string \"ok\" (-> color='k'). The keyword argument will take precedence.\n",
      "  plt.errorbar(x, meds, fmt='ok', lw=3, color='blue')\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAE/CAYAAAD2ee+mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAApBElEQVR4nO3deZhcdZ3v8fc3G6EDDtICFxKSjsMWkLBlUEfEDFxHQFlUroM2smoryACjoGgupiO2ZpRRlFG0HRmiNovKVTKCQkQCgyNLkBBWIWp3CKKEyB4SEvjeP+p00wmdpJukUqe73q/nqafO+Z2lvlW/Xj511shMJEmSVD7Dal2AJEmS+mZQkyRJKimDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFN0pAVEZ0R8XxEPBsRf46ISyJii2LaJRHxQjGt+3FXr2VPjogHIuKZiPhLRFwTEVtGxM97zb9yjXV8q3bvVtJQZFCTNNQdnplbAHsD+wCf7jXtS5m5Ra/HXgAR8TbgC8D7M3NLYBJwBUBmHto9P9Cxxjo+ugnfl6Q6MKLWBUjSppCZf46Ia6kEtvX5O+A3mXlnsexfgVlVLE+S+uQWNUl1ISLGAYcCC/sx+63AOyJiRkS8JSI2q251ktQ3g5qkoe6nEfEM8DDwGDC917SzIuLJXo9ZAJn538B7gH2Bq4GlEfGViBi+qYuXVN8MapKGuqOK48ymArsBr+s17fzM3KrX4/juCZn588w8HNgaOBI4AfjQpitbkgxqkupEZt4IXAKcP8DlXsrM64FfAW+oQmmStFaeTCCpnlwAdEbEXuuaKSKOBDYHrgWepHJywduAM6tbniStzi1qkupGZi4Bvgd8tmj65BrXUXu8aH8C+DDwEPA08APgy5nZscmLllTXIjNrXYMkSZL64BY1SZKkkjKoSZIklZRBTZIkqaQMapIkSSVlUJMkSSqpQX0dtde97nXZ1NRU6zIkSZLW64477ng8M7cZyDKDOqg1NTUxb968WpchSZK0XhHRNdBl3PUpSZJUUgY1SZKkkjKoSZIkldSgPkatLytXrmTx4sUsX7681qUMCaNHj2bcuHGMHDmy1qVIklR3hlxQW7x4MVtuuSVNTU1ERK3LGdQyk6VLl7J48WImTpxY63IkSao7Q27X5/Lly2lsbDSkbQQRQWNjo1snJUmqkSEX1ABD2kbkZylJUu0MyaBWaxHBscce2zO+atUqttlmG971rnfVsCpJkjTYGNSqYMyYMdxzzz08//zzAMyZM4exY8fWuCpJkjTY1H1Q6+jooKmpiWHDhtHU1ERHR8dGWe9hhx3G1VdfDcBll13G+9///p5pzz33HCeddBL7778/++yzD1dddRUAnZ2dvPWtb2Xfffdl33335X/+538AmDt3LlOnTuXoo49mt912o7m5mczcKHVKkqTyquug1tHRQUtLC11dXWQmXV1dtLS0bJSwdswxx3D55ZezfPlyFixYwBvf+MaeaW1tbRx00EHcdttt3HDDDZx99tk899xzbLvttsyZM4ff/va3XHHFFZx++uk9y9x5551ccMEF3HffffzhD3/g17/+9QbXKEmSKubOnVvrEvo05C7P0duZZ57J/Pnz1zr9lltuYcWKFau1LVu2jJNPPpnvfOc7fS6z9957c8EFF6z3tSdPnkxnZyeXXXYZhx122GrTrrvuOmbPns35558PVM5UXbRoETvssAOnnXYa8+fPZ/jw4Tz44IM9y+y///6MGzeup4bOzk4OOOCA9dYhSZLW78Ybb2Tq1Km1LuMVhnRQW581Q9r62gfqiCOO4KyzzmLu3LksXbq0pz0zufLKK9l1111Xm7+1tZXtttuOu+66i5deeonRo0f3TNtss816hocPH86qVas2So2SJKm8hnRQW9+Wr6amJrq6Xnkj+wkTJmyUTaAnnXQSW221FXvuuedq63vHO97BhRdeyIUXXkhEcOedd7LPPvvw1FNPMW7cOIYNG8asWbN48cUXN7gGSZI0eNX1MWptbW00NDSs1tbQ0EBbW9tGWf+4ceNWO86s27nnnsvKlSuZPHkye+yxB+eeey4Ap556KrNmzWKvvfbigQceYMyYMRulDkmSNDjFYD57cMqUKTlv3rzV2u6//34mTZrU73V0dHQwbdo0Fi1axPjx42lra6O5uXljlzqoDfQzlSRpsJkxYwbTp0+v6mtExB2ZOWUgywzpXZ/90dzcbDCTJEmlVNe7PiVJksrMoCZJklRSBjVJkqSSqmpQi4jOiLg7IuZHxLyibeuImBMRDxXPry3aIyK+HhELI2JBROxbzdokSZLKblNsUfuHzNy711kO5wDXZ+bOwPXFOMChwM7FowW4aBPUJkmSVFq12PV5JDCrGJ4FHNWr/XtZcQuwVURsX4P6NlhEcOyxx/aMr1q1im222YZ3vetdA1rP1KlT6b78yGGHHcaTTz65McuUJEklV+2glsB1EXFHRLQUbdtl5qPF8J+B7YrhscDDvZZdXLQNOmPGjOGee+7h+eefB2DOnDmMHbthb+Waa65hq6222gjVSZKkwaLa11E7IDMfiYhtgTkR8UDviZmZETGgK+4Wga8FoLGxkfb29tWm77333ixZsqTf67vyys1oaxvDI48MY+zYl5g27Tne+94Nu9dnZjJ16lQuu+wyDj/8cP7zP/+Tww8/nFtvvZUlS5bw3HPP8ZnPfIYHHniAlStXcvbZZ3PooYfy/PPPc8YZZ3Dvvfey00478cwzz/DEE0+wZMkS9ttvP6677joaGxs57rjj+NOf/sSKFSv48Ic/zHHHHQdUbonV0tLCddddx+abb86sWbPYdtttN+i9ADzzzDOv+JwlSRpqSvm/LjM3yQNoBc4CfgdsX7RtD/yuGP428P5e8/fMt7bHfvvtl2u67777XtG2Nj/4QWZDQya8/GhoqLRviDFjxuRdd92V733ve/P555/PvfbaK2+44YZ85zvfmZmZn/70p/P73/9+ZmY+8cQTufPOO+ezzz6b//Zv/5YnnnhiZmbeddddOXz48Lz99tszM3PChAm5ZMmSzMxcunRpZmYuW7Ys99hjj3z88cczMxPI2bNnZ2bm2Wefneedd96GvZHCQD5TSZIGo9bW1qq/BjAvB5ifqrZFLSLGAMMy85li+B+BzwGzgeOBmcXzVcUis4HTIuJy4I3AU/nyLtJX5cwzYf78tU+/5RZYscbGs2XL4OST4Tvf6XuZvfeG9dzrHYDJkyfT2dnJZZddxmGHHbbatOuuu47Zs2dz/vnnA7B8+XIWLVrETTfd1HNv0MmTJzN58uQ+1/31r3+dn/zkJwA8/PDDPPTQQzQ2NjJq1Kie4+D2228/5syZs/5CJUlSaVVz1+d2wE8iovt1Ls3MX0TE7cAPI+JkoAt4XzH/NcBhwEJgGXBiFWsDXhnS1tc+UEcccQRnnXUWc+fOZenSpT3tmcmVV17JrrvuOuB1zp07l1/+8pf85je/oaGhgalTp7J8+XIARo4cSfF5M3z4cFatWrVx3ogkSaqJqgW1zPwDsFcf7UuBg/toT+BjG7OG9W35amqCrq5Xtk+YAHPnbvjrn3TSSWy11VbsueeezO21wne84x1ceOGFXHjhhUQEd955J/vssw8HHnggl156KQcddBD33HMPCxYseMU6n3rqKV772tfS0NDAAw88wC233LLhhUqSpFKq6zsTtLVBQ8PqbQ0NlfaNYdy4cT27Mns799xzWblyJZMnT2aPPfbg3HPPBeCUU07h2WefZdKkSXz2s59lv/32e8WyhxxyCKtWrWLSpEmcc845vOlNb9o4xUqSpNKJyoaswWnKlCnZfZ2xbvfffz+TJk3q9zo6OmDaNFi0CMaPr4S05uaNXengNtDPVJKkwWbGjBlMnz69qq8REXfkyzcA6JdqX56j9JqbDWaSJKmc6nrXpyRJUpkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqNTJ79mxmzpw5oGVaW1sZO3Yse++9N294wxuYPXt2z7QLLriA733vewDcddddvPnNb2bPPffk8MMP5+mnn+6Z74tf/CI77bQTu+66K9deey0AL7zwAgceeKC3nJIkqWQMajVyxBFHcM455wx4uX/5l39h/vz5/OhHP+Kkk07ipZdeYtWqVVx88cV84AMfAOBDH/oQM2fO5O677+bd7343X/7ylwG47777uPzyy7n33nv5xS9+wamnnsqLL77IqFGjOPjgg7niiis26nuUJEkbxqBWBZ2dney2226ccMIJ7LLLLjQ3N/PLX/6St7zlLey8887cdtttXHLJJZx22mkAnHDCCZx++un8/d//Pa9//ev58Y9/vN7XmDRpEiNGjODxxx/nV7/6Ffvuuy8jRlSuX/zggw9y4IEHAvD2t7+dK6+8EoCrrrqKY445hs0224yJEyey0047cdtttwFw1FFH0dHRUY2PQ5IkvUoGtSpZuHAhn/jEJ3jggQd44IEHuPTSS7n55ps5//zz+cIXvvCK+R999FFuvvlmfvazn/VrS9utt97KsGHD2Gabbfj1r3+92n1B99hjD6666ioAfvSjH/Hwww8D8Mgjj7Djjjv2zDdu3DgeeeQRAN7whjdw++23b9B7liRJG9eQv4XUjBkzNvo6+3MvsIkTJ7LnnnsCleB08MEHExHsueeedHZ2vmL+o446imHDhrH77rvzl7/8Za3r/epXv8oPfvADttxyS6644goigkcffXS1e3FefPHFnH766Zx33nkcccQRjBo1ar31Dh8+nFGjRvHMM8+w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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(rest_df, \"REST\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "6cee4a4c",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_2709855/627405957.py:24: UserWarning: color is redundantly defined by the 'color' keyword argument and the fmt string \"ok\" (-> color='k'). The keyword argument will take precedence.\n",
      "  plt.errorbar(x, meds, fmt='ok', lw=3, color='blue')\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnAAAAE/CAYAAADG9f6HAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7lklEQVR4nO3de5yWdZ3/8dcbVHDUAtH8KQhDhQdMPLFIW7mkeSJXrXULd0pNfztamlpqq1EB2rSu+UvFLTdMVl1H0Dwkm25KJrodEEERD6CSzhBEysFTjKDI5/fH9b2Hm2EG7oG5D8P9fj4e92Ou63sd7u8932Hmy3Vd3+9bEYGZmZmZdR89yl0BMzMzM+scd+DMzMzMuhl34MzMzMy6GXfgzMzMzLoZd+DMzMzMuhl34MzMzMy6GXfgzMzMzLoZd+DMrCpJGiPpcUmrJL2Wlr+mzM2S3pX0V0krJU2XtF/esWdIej9tf0vSXEkn5G3/gKRrJS1K+/wxre9Wnk9rZtsad+DMrOpIugi4Dvgh8H+APYBzgE8AO6TdroqInYH+wBLgpjan+UPa3idtu1NSX0k7AA8DBwDHAR8APg6sAEYU8WOZWRXZrtwVMDMrJUkfBC4HTouIu/M2PQXUpX1aCyPiHUl3Aj9v73wRsU7SZGAi8BHgYGAg8OmI+Gva7TXgiq79JGZWzXwFzsyqzceBXsB9hewsaSfgVGBhB9u3A/4v8FfgJeAzwK/yOm9mZl3OHTgzqza7AcsjYm2uQNLvJb0h6R1JR6TiiyW9AbwNfBL4cpvzjEzb/0LWwftcRLwJ9AOWFvkzmFmVcwfOzKrNCmC3dOUMgIj424jok7blfi9encpqgXeAfducZ2ZE9ImI3SJiZET8Ou/8exax/mZm7sCZWdX5A7AGOKmQnSNiEXABcJ2kHQs45NfAsenWq5lZUbgDZ2ZVJSLeACYAP5F0iqRdJPWQdDDQbqcrIqYDfwbqC3iL/wL+BNwtab907n6Svi1pdNd8CjOrdu7AmVnViYirgG8C3wJeTa+fAv8C/L6Dw34IfEtSr82cew3ZQIYFwHTgLWAW2bN3j3dF/c3MFBHlroOZmZmZdYKvwJmZmZl1M+7AmZmZmXUz7sCZmZmZdTPuwJmZmZl1M+7AmZmZmXUz22SY/W677Ra1tbXlroaZmZnZZs2ZM2d5ROzemWO2yQ5cbW0ts2fPLnc1zMzMzDZLUnNnj/EtVDMzM7Nuxh04MzMzs27GHTgzMzOzbmabfAauPe+99x6LFy9m9erV5a7KNqF3794MGDCA7bffvtxVMTMzqzpV04FbvHgxu+yyC7W1tUgqd3W6tYhgxYoVLF68mMGDB5e7OmZmZlWnam6hrl69mn79+rnz1gUk0a9fP1/NNDMzK5Oq6cAB7rx1IX8vzczMyqeqOnDlJokvfelLretr165l991354QTTihjrczMzKy7cQeuhHbaaSeeffZZ3nnnHQCmT59O//79y1wrMzMz627cgetAY2MjtbW19OjRg9raWhobG7vkvKNHj+b+++8HYMqUKZx66qmt21atWsWZZ57JiBEjOOSQQ7jvvvsAaGpq4lOf+hSHHnoohx56KL///e8BmDFjBqNGjeKUU05hv/32o66ujojoknqamZlZ5XIHrh2NjY3U19fT3NxMRNDc3Ex9fX2XdOLGjBnD1KlTWb16NfPmzePwww9v3dbQ0MCRRx7JrFmzeOSRR7jkkktYtWoVH/rQh5g+fTpPPvkkd9xxB+eff37rMU899RTXXnstzz//PC+//DK/+93vtrqOZmZmlpkxY0a5q9CuqplGJN+FF17I3LlzO9w+c+ZM1qxZs0FZS0sLZ511FjfeeGO7xxx88MFce+21m33vYcOG0dTUxJQpUxg9evQG2x566CGmTZvG1VdfDWQjZxctWsRee+3Feeedx9y5c+nZsycvvvhi6zEjRoxgwIABrXVoamrik5/85GbrYWZmZpv36KOPMmrUqHJXYyNV2YHbnLadt82Vd9aJJ57IxRdfzIwZM1ixYkVreURw9913s++++26w//jx49ljjz14+umnWbduHb17927d1qtXr9blnj17snbt2i6po5mZmVWuquzAbe5KWW1tLc3NzRuVDxo0qEsupZ555pn06dOHAw88cIPzHXvssVx//fVcf/31SOKpp57ikEMO4c0332TAgAH06NGDW265hffff3+r62BmZmbdl5+Ba0dDQwM1NTUblNXU1NDQ0NAl5x8wYMAGz7HlfPe73+W9995j2LBhHHDAAXz3u98F4Gtf+xq33HILBx10EAsWLGCnnXbqknqYmZlZ96RijVqUtDdwK7AHEMCkiLgub/tFwNXA7hGxXNnMsNcBo4EW4IyIeDLtezrwnXTo9yPilk299/Dh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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(grpc_df, \"GRPC\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9e6cf1cf",
   "metadata": {},
   "source": [
    "## Triton"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "ef50f7d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "directory = \"triton_exp1/\"\n",
    "\n",
    "base = load_json(directory+\"base.json\")\n",
    "oc_50 = load_json(directory+\"oc_50.json\")\n",
    "oc_55 = load_json(directory+\"oc_55.json\")\n",
    "oc_60 = load_json(directory+\"oc_60.json\")\n",
    "oc_75 = load_json(directory+\"oc_75.json\")\n",
    "\n",
    "rest = combine_dict(\"http_req_duration{scenario:default}\")\n",
    "grpc = combine_dict(\"grpc_req_duration{scenario:default}\")\n",
    "\n",
    "rest_df = pd.DataFrame.from_dict(rest).T\n",
    "grpc_df = pd.DataFrame.from_dict(grpc).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "6863a441",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_298811/202463428.py:24: UserWarning: color is redundantly defined by the 'color' keyword argument and the fmt string \"ok\" (-> color='k'). The keyword argument will take precedence.\n",
      "  plt.errorbar(x, meds, fmt='ok', lw=3, color='blue')\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(rest_df, \"REST\", 25)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "dba124a5",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/tmp/ipykernel_298811/627405957.py:24: UserWarning: color is redundantly defined by the 'color' keyword argument and the fmt string \"ok\" (-> color='k'). The keyword argument will take precedence.\n",
      "  plt.errorbar(x, meds, fmt='ok', lw=3, color='blue')\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmoAAAE/CAYAAAD2ee+mAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAApYUlEQVR4nO3dfZyVdZ3/8deHO3HU1kRyFYShvEMTUfmhrmWEuSoV0q6/0sbUdHfsbrVN29zlZ0JFueWjTOtXjRuPaJvEyi3YdEs00Z/lTaBIKq6SzSBGorjexJ2gn98f55pxQJAZncO5mPN6Ph7nca7re92cz5nrzMz7fK+7yEwkSZJUPv1qXYAkSZK2zKAmSZJUUgY1SZKkkjKoSZIklZRBTZIkqaQMapIkSSVlUJMkSSopg5qkPisiTouIuyJidUSsLIY/FhXfi4gXIuLPEfF0RMyLiIO6LHt2RLxYTH8uIhZFxHu6TH9DRFwREcuKeX5fjO9Zm3crqS8yqEnqkyLiQuDrwFeAvwT2Aj4CHAsMKmb7cmbuCgwDHge+u9lq7iim715M+1FEvDEiBgE3A4cAJwFvAI4BVgHjq/i2JNWZAbUuQJJ6W0T8BfA54MzMvK7LpHuBpmKezsbMXBsRPwJ+vKX1ZeZLETETuBJ4CzAWGAG8MzP/XMy2Evh8774TSfXOHjVJfdExwE7AnO7MHBG7AKcDS7cyfQDwd8CfgUeAdwG/6BLSJKkqDGqS+qI9gacyc2NHQ0T8JiKeiYi1EXFc0XxRRDwDPA+8DfjQZus5upj+JypB7n2Z+SwwBFhR5fcgSQY1SX3SKmDPoicMgMz8q8zcvZjW8bfv8qKtEVgLHLjZeu7MzN0zc8/MPDozb+qy/r2rWL8kAQY1SX3THcB64JTuzJyZy4ALgK9HxM7dWOQm4MRil6kkVY1BTVKfk5nPANOB/xsRp0bEbhHRLyLGAlsMV5k5D/gj0NyNl/h34DHguog4qFj3kIj4l4iY1DvvQpIMapL6qMz8MvAp4J+AJ4rHd4DPAL/ZymJfAf4pInbaxrrXUzmh4CFgHvAccDeVY+Pu6o36JQkgMrPWNUiSJGkL7FGTJEkqKYOaJElSSRnUJEmSSsqgJkmSVFIGNUmSpJLaoW/Kvueee2ZjY2Oty5AkSdqmhQsXPpWZQ3uyzA4d1BobG1mwYEGty5AkSdqmiGjv6TLu+pQkSSopg5okSVJJGdQkSZJKaoc+Rm1LNmzYwPLly1m3bl2tS+kTBg8ezPDhwxk4cGCtS5Ekqe70uaC2fPlydtttNxobG4mIWpezQ8tMVq1axfLlyxk1alSty5Ekqe70uV2f69atY8iQIYa0XhARDBkyxN5JSZJqpM8FNcCQ1ov8WUqSVDt9MqjVWkRwxhlndI5v3LiRoUOH8p73vKeGVUmSpB2NQa0KdtllF+6//37Wrl0LwLx58xg2bFiNq5IkSTuaug9qra2tNDY20q9fPxobG2ltbe2V9U6aNInrr78egGuuuYbTTz+9c9rq1as555xzGD9+PIcffjhz5swBoK2tjbe//e0cccQRHHHEEfzmN78BYP78+UyYMIFTTz2Vgw46iKamJjKzV+qUJEnlVddBrbW1lebmZtrb28lM2tvbaW5u7pWwdtpppzF79mzWrVvH4sWLOeqoozqnzZgxg4kTJ3L33Xdzyy238OlPf5rVq1fzpje9iXnz5nHPPfdw7bXXcv7553cuc++993LFFVfw4IMP8uijj/LrX//6ddcoSZIq5s+fX+sStqjPXZ6jq09+8pMsWrRoq9PvvPNO1q9fv0nbmjVrOPfcc7n66qu3uMzYsWO54oortvnaY8aMoa2tjWuuuYZJkyZtMu3GG29k7ty5XH755UDlTNVly5axzz778IlPfIJFixbRv39/Hn744c5lxo8fz/DhwztraGtr421ve9s265AkSdt26623MmHChFqX8Qp9Oqhty+YhbVvtPTV58mQuuugi5s+fz6pVqzrbM5PrrruOAw88cJP5p02bxl577cV9993HSy+9xODBgzun7bTTTp3D/fv3Z+PGjb1SoyRJKq8+HdS21fPV2NhIe/srb2Q/cuTIXukCPeecc9h999059NBDN1nfiSeeyFVXXcVVV11FRHDvvfdy+OGH8+yzzzJ8+HD69evHrFmzePHFF193DZIkacdV18eozZgxg4aGhk3aGhoamDFjRq+sf/jw4ZscZ9bhkksuYcOGDYwZM4ZDDjmESy65BICPfexjzJo1i8MOO4yHHnqIXXbZpVfqkCRJO6bYkc8eHDduXC5YsGCTtiVLljB69Ohur6O1tZWpU6eybNkyRowYwYwZM2hqaurtUndoPf2ZSpK0o5k+fTqXXnppVV8jIhZm5rieLNOnd312R1NTk8FMkiSVUl3v+pQkSSozg5okSVJJGdQkSZJKyqAmSZJUUgY1SZKkkjKoVUFEcMYZZ3SOb9y4kaFDh/Ke97ynR+uZMGECHZcfmTRpEs8880xvlilJkkqu7i/PUQ277LIL999/P2vXrmXnnXdm3rx5DBs27HWt84Ybbuil6iRJ0o6i7nvUWluhsRH69as8t7b2znonTZrE9ddfD8A111zD6aef3jlt9erVnHPOOYwfP57DDz+cOXPmALB27VpOO+00Ro8ezfve9z7Wrl3buUxjYyNPPfUUAFOmTOHII4/kkEMOoaWlpXOeXXfdlalTp3LYYYdx9NFH88QTT/TOm5EkSTVR10GttRWam6G9HTIrz83NvRPWTjvtNGbPns26detYvHgxRx11VOe0GTNmMHHiRO6++25uueUWPv3pT7N69Wq+9a1v0dDQwJIlS5g+fToLFy7c4rpnzpzJwoULWbBgAVdeeWXnDd9Xr17N0UcfzX333cdxxx3H1Vdf/frfiCRJqpk+vevzk5+ERYu2Pv3OO2H9+k3b1qyBc8+FrWWcsWNhG/d6B2DMmDG0tbVxzTXXMGnSpE2m3XjjjcydO5fLL78cgHXr1rFs2TJuu+22znuDjhkzhjFjxmxx3VdeeSU//elPAXjsscd45JFHGDJkCIMGDeo8Du7II49k3rx52y5UkiSVVp8OatuyeUjbVntPTZ48mYsuuoj58+d39noBZCbXXXcdBx54YI/XOX/+fG666SbuuOMOGhoamDBhAuvWrQNg4MCBRAQA/fv3Z+PGjb3zRiRJUk306aC2rZ6vxsbK7s7NjRwJ8+e//tc/55xz2H333Tn00EOZ32WFJ554IldddRVXXXUVEcG9997L4YcfznHHHccPf/hDJk6cyP3338/ixYtfsc5nn32WN77xjTQ0NPDQQw9x5513vv5CJUlSKdX1MWozZkBDw6ZtDQ2V9t4wfPjwzl2ZXV1yySVs2LCBMWPGcMghh3DJJZcA8NGPfpQ///nPjB49ms9+9rMceeSRr1j2pJNOYuPGjYwePZqLL76Yo48+uneKlSRJpROZWesaXrNx48Zlx3XGOixZsoTRo0d3ex2trTB1KixbBiNGVEJaU1NvV7pj6+nPVJKkHc306dO59NJLq/oaEbEwM8f1ZJmq7vqMiDbgeeBFYGNmjouIPYBrgUagDXh/Zv5PVA6u+jowCVgDnJ2Z91SzPqiEMoOZJEkqo+2x6/OdmTm2S4K8GLg5M/cHbi7GAU4G9i8ezcC3tkNtkiRJpVWLY9ROAWYVw7OAKV3av58VdwK7R8TeNahPkiSpFKp91mcCN0ZEAt/JzBZgr8xcUUz/E7BXMTwMeKzLssuLthVd2oiIZio9bgwZMmSTK/MDjB07lieffLK330dde/7551/xc5Ykqa8p4/+6age1t2Xm4xHxJmBeRDzUdWJmZhHiuq0Iey1QOZmgubl5k+lLlixh6NChr7NsdfXUU0+x+c9ZkqS+ZPr06VX/X3feeef1eJmq7vrMzMeL55XAT4HxwBMduzSL55XF7I8D+3ZZfHjRJkmSVJeqFtQiYpeI2K1jGPhr4H5gLnBWMdtZwJxieC5wZlQcDTzbZRepJElS3almj9pewO0RcR9wN3B9Zv4CuAw4ISIeAd5VjAPcADwKLAWuBj5Wxdpqbu7cuVx22WXbnrGLadOmMWzYMMaOHctb3/pW5s6d2zntiiuu4Pvf/z4A9913H8cccwyHHnoo733ve3nuuec65/vSl77Efvvtx4EHHsgvf/lLAF544QWOO+44bzklSVLJVO0Ytcx8FDhsC+2rgOO30J7Ax6tVT9lMnjyZyZMn93i5f/zHf+Siiy5iyZIlvP3tb2flypW89NJLzJw5k3vuqVx27u/+7u+4/PLLecc73sHMmTP5yle+wuc//3kefPBBZs+ezQMPPMAf//hH3vWud/Hwww8zaNAgjj/+eK699lqavKicJEmlUde3kKqWtrY2DjroIM4++2wOOOAAmpqauOmmmzj22GPZf//9ufvuu/ne977HJz7xCQDOPvtszj//fP7qr/6KN7/5zfzkJz/Z5muMHj2aAQMG8NRTT/GrX/2KI444ggEDKrn74Ycf5rjjjgPghBNO4LrrrgNgzpw5nHbaaey0006MGjWK/fbbj7vvvhuAKVOm0NraWo0fhyRJeo0MalWydOlSLrzwQh566CEeeughfvjDH3L77bdz+eWX88UvfvEV869YsYLbb7+dn//851x88cVbWOOm7rrrLvr168fQoUP59a9/vcl9QQ855BDmzKkc+vfjH/+Yxx6rXPXk8ccfZ999Xz5fY/jw4Tz+eOV8jbe+9a389re/fV3vWZIk9a5qX56j5qZPn97r6+zOvcBGjRrFoYceClSC0/HHH09EcOihh9LW1vaK+adMmUK/fv04+OCDeeKJJ7a63q997Wv84Ac/YLfdduPaa68lIlixYsUm9+KcOXMm559/Pp///OeZPHkygwYN2ma9/fv3Z9CgQTz//PPstttu25xfkiRVX58PatW+werW7LTTTp3D/fr16xzv16/fFg/a7zp/5XA9mDp1Ktdffz0AixYtAl4+Rq2rnXfemXXr1nWOH3TQQdx4441AZTdoxzqGDRvW2bsGsHz5coYNG9Y5vn79egYPHtzzNytJkqrCXZ8lNmPGDBYtWtQZ0rZm9OjRLF26tHN85crKpeleeuklvvCFL/CRj3wEqJzAMHv2bNavX88f/vAHHnnkEcaPHw/AqlWr2HPPPRk4cGB13owkSeoxg1ofcPLJJ3Pbbbd1jl9zzTUccMABHHTQQeyzzz58+MMfBiq7YN///vdz8MEHc9JJJ/HNb36T/v37A3DLLbfw7ne/uyb1S5KkLYuO3Ww7onHjxuWCBQs2aVuyZMkmx2vVi/e97318+ctfZv/9939Ny//N3/wNl112GQcccMArptXrz1SSVD+mT59e9cOlImJhZo7ryTL2qPURl112GStWvLYbObzwwgtMmTJliyFNkiTVTp8/maBeHHjggRx44IGvadlBgwZx5pln9nJFkiTp9eqTPWo78u7csvFnKUlS7fS5oDZ48GBWrVplwOgFmcmqVau8ZIckSTXS53Z9Dh8+nOXLl/Pkk0/WupQ+YfDgwQwfPrzWZUiSVJf6XFAbOHAgo0aNqnUZkiRJr1uf2/UpSZLUVxjUJEmSSsqgJkmSVFIGNUmSpJIyqEmSJJWUQU2SJKmkDGqSJEklZVCTJEkqKYOaJElSSRnUJEmSSsqgJkmSVFIGNUmSpJIyqEmSJJWUQU2SJKmkDGqSJEklZVCTJEkqKYOaJElSSRnUJEmSSsqgJkmSVFIGNUmSpJIyqEmSJJWUQU2SJKmkqh7UIqJ/RNwbET8vxkdFxF0RsTQiro2IQUX7TsX40mJ6Y7VrkyRJKrPt0aN2AbCky/i/Al/LzP2A/wHOLdrPBf6naP9aMZ8kSVLdqmpQi4jhwLuBfyvGA5gI/KSYZRYwpRg+pRinmH58Mb8kSVJdqnaP2hXAPwEvFeNDgGcyc2MxvhwYVgwPAx4DKKY/W8wvSZJUlwZUa8UR8R5gZWYujIgJvbjeZqAZYMiQIbS0tPTWqiVJUh0rY6aIzKzOiiO+BHwI2AgMBt4A/BQ4EfjLzNwYEccA0zLzxIj4ZTF8R0QMAP4EDM1XKXDcuHG5YMGCqtQvSZLqx/Tp07n00kur+hoRsTAzx/Vkmart+szMf87M4ZnZCJwG/Cozm4BbgFOL2c4C5hTDc4txium/erWQJkmS1NfV4jpqnwE+FRFLqRyD9t2i/bvAkKL9U8DFNahNkiSpNKp2jFpXmTkfmF8MPwqM38I864D/vT3qkSRJ2hF4ZwJJkqSSMqhJkiSVlEFNkiSppAxqkiRJJWVQkyRJKimDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJWVQkyRJKimDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJTXg1SZGxGDgPcDbgX2AtcD9wPWZ+UD1y5MkSapfWw1qETGdSkibD9wFrAQGAwcAlxUh7sLMXLwd6pQkSao7r9ajdndmXrqVaV+NiDcBI6pQkyRJkniVoJaZ12/eFhH9gF0z87nMXEmll02SJElVsM2TCSLihxHxhojYhcrxaQ9GxKerX5okSVJ9685Znwdn5nPAFOC/gFHAh6pZlCRJkroX1AZGxEAqQW1uZm4AsqpVSZIkqVtB7TtAG7ALcFtEjASeq2ZRkiRJ2sZ11AAy80rgyi5N7RHxzuqVJEmSJOhGUIuI3YEzgcbN5j+/OiVJkiQJuhHUgBuAO4HfAS9VtxxJkiR16E5QG5yZn6p6JZIkSdpEd04m+PeI+PuI2Dsi9uh4VL0ySZKkOtedHrUXgK8AU3n5shwJvLlaRUmSJKl7Qe1CYL/MfKraxUiSJOll3dn1uRRYU+1CJEmStKnu9KitBhZFxC3A+o7GzHzVy3NExGDgNmCn4nV+kpmXRsQoYDYwBFgIfCgzX4iInYDvA0cCq4APZGZbz9+SJElS39CdoPaz4tFT64GJmfnn4hZUt0fEfwGfAr6WmbMj4tvAucC3iuf/ycz9IuI04F+BD7yG15UkSeoTunNnglmvZcWZmcCfi9GBxSOBicAHi/ZZwDQqQe2UYhjgJ8A3IiKK9UiSJNWdrR6jFhH/GRHvLXrDNp/25oj4XESc82orj4j+EbEIWAnMA34PPJOZG4tZlgPDiuFhwGMAxfRnqewelSRJqkuv1qP291R2U14REU8DTwKDgVFUTjD4RmbOebWVZ+aLwNjiNlQ/BQ56vQVHRDPQDDBkyBBaWlpe7yolSZJKmSmiO3sWI6IR2BtYCzycmT0+CzQiPlss/xngLzNzY0QcA0zLzBMj4pfF8B0RMQD4EzD01XZ9jhs3LhcsWNDTUiRJkjYxffp0Lr300qq+RkQszMxxPVmmO5fnIDPbMvOOzFzU3ZAWEUOLnjQiYmfgBGAJcAtwajHbWUBHr9zcYpxi+q88Pk2SJNWz7pz1+VrtDcyKiP5UAuGPMvPnEfEgMDsivgDcC3y3mP+7VG5XtRR4GjitirVJkiSVXtWCWmYuBg7fQvujwPgttK8D/ne16pEkSdrRbHPXZ3HmZ7d2kUqSJKn3dCeAfQB4JCK+HBGv+6xNSZIkdc82g1pmnkFlF+bvge9FxB0R0RwRu1W9OkmSpDrW3bM+n6Nyt4DZVE4SeB9wT0T8QxVrkyRJqmvdOUZtckT8FJhP5TZQ4zPzZOAw4MLqlidJklS/unPW599SuYn6bV0bM3NNRJxbnbIkSZLUnaA2DVjRMVJcvHav4iK4N1erMEmSpHrXnWPUfgy81GX8xaJNkiRJVdSdoDYgM1/oGCmGB1WvJEmSJEH3gtqTETG5YyQiTgGeql5JkiRJgu4do/YRoDUivgEE8BhwZlWrkiRJ0raDWmb+Hjg6InYtxv9c9aokSZK07aAWETtRuURHIzAgIgDIzM9VtTJJkqQ6151j1OYApwAbgdVdHpIk9Snz58+vdQnSJrpzjNrwzDyp6pVIklRjt956KxMmTKh1GVKn7vSo/SYiDq16JZIkSdpEd3rU3gacHRF/ANZTOfMzM3NMVSuTJEmqc90JaidXvQpJkiS9wjZ3fWZmO7AvMLEYXtOd5SRJkvT6bDNwRcSlwGeAfy6aBgI/qGZRkiRJ6l7P2PuAyRSX5MjMPwK7VbMoSZIkdS+ovZCZCSRAROxS3ZIkSZIE3QtqP4qI7wC7R8TfAzcB/1bdsiRJktSde31eHhEnAM8BBwKfzcx5Va9MkiSpznXnXp//mpmfAeZtoU2SJElV0p1dnydsoc1rq0mSJFXZVnvUIuKjwMeAN0fE4i6TdgN+Xe3CJEmS6t2r7fr8IfBfwJeAi7u0P5+ZT1e1KkmSJG09qGXms8CzwOkAEfEmYDCwa0TsmpnLtk+JkiRJ9ak7dyZ4b0Q8AvwBuBVoo9LTJkmSpCrqzskEXwCOBh7OzFHA8cCdVa1KkiRJ3QpqGzJzFdAvIvpl5i3AuCrXJUmSVPe6E9SeiYhdgduA1oj4OsV9PyWpL5o/f36tS5AkoHtB7RRgLfCPwC+A3wPvrWZRklRLt956a61LkCSge7eQ6tp7NquKtUiSJKmLV7vg7fNAbmkSkJn5hqpVJUmSpK3v+szM3TLzDVt47NadkBYR+0bELRHxYEQ8EBEXFO17RMS8iHikeH5j0R4RcWVELI2IxRFxRO+9TUmSpB1Pd45Re602Ahdm5sFULu/x8Yg4mMpdDm7OzP2Bm3n5rgcnA/sXj2bgW1WsTZIkqfSqFtQyc0Vm3lMMPw8sAYZROTmh41i3WcCUYvgU4PtZcSewe0TsXa36JEmSym6bJxP0hohoBA4H7gL2yswVxaQ/AXsVw8OAx7ostrxoW9GljYhoptLjxpAhQ2hpaale4ZLqln9b6pfbvn6VcdtXPagV12C7DvhkZj4XEZ3TMjMjYksnLGxVZrYALQDjxo3L5ubm3ixXkpg+fTr+balPbvv6tT22/XnnndfjZap5jBoRMZBKSGvNzP8omp/o2KVZPK8s2h8H9u2y+PCiTZIkqSpaW1tpbGxk2rRpNDY20traWuuSNlG1oBaVrrPvAksy86tdJs0FziqGzwLmdGk/szj782jg2S67SCVJknpVa2srzc3NtLe3A9De3k5zc3Opwlo1e9SOBT4ETIyIRcVjEnAZcEJEPAK8qxgHuAF4FFgKXA18rIq1SZKkOjd16lTWrFmzSduaNWuYOnVqjSp6paodo5aZt1O5OO6WHL+F+RP4eLXqkSRJ6mrZsmU9aq+Fqh6jJkmSVFYjRozoUXstGNQkSVJdmjFjBg0NDZu0NTQ0MGPGjBpV9EoGNUmSVJeamppoaWlh5MiRAIwcOZKWlhaamppqXNnLDGqSJKluNTU10dbWxrRp02hraytVSAODmiRJUmkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJWVQkyRJKimDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJWVQkyRJKimDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJWVQkyRJKimDmiRJUkkZ1CRJUt1qbYXGRpg27bM0NlbGy2RArQuQJEmqhdZWaG6GNWsAgvb2yjhAU1MtK3uZPWqSJKkuTZ3aEdJetmZNpb0sDGqSJKkuLVvWs/ZaMKhJkqS6NGJEz9prwaAmSZLq0owZ0NCwaVtDQ6W9LKoW1CJiZkSsjIj7u7TtERHzIuKR4vmNRXtExJURsTQiFkfEEdWqS5IkCSonDLS0wMiRAMnIkZXxspxIANXtUfsecNJmbRcDN2fm/sDNxTjAycD+xaMZ+FYV65IkSQIqoaytDaZN+xxtbeUKaVDFoJaZtwFPb9Z8CjCrGJ4FTOnS/v2suBPYPSL2rlZtkiRJO4LtfYzaXpm5ohj+E7BXMTwMeKzLfMuLNkmSpLpVswveZmZGRPZ0uYhoprJ7lCFDhtDS0tLrtUmSf1vqy1133cXPfvYznn76aa688kqmTJnCUUcdVeuytJ2V8fd+ewe1JyJi78xcUezaXFm0Pw7s22W+4UXbK2RmC9ACMG7cuGzuuISwJPWS6dOn49+W+tHa2srs2bNZU1z59Omnn2b27NlMnDiRprIdsKSq2R6/9+edd16Pl9neuz7nAmcVw2cBc7q0n1mc/Xk08GyXXaSSJFXN1KlTO0NahzVr1jC1TJenV92qWo9aRFwDTAD2jIjlwKXAZcCPIuJcoB14fzH7DcAkYCmwBvhwteqSJKmrZVu5DP3W2qXtqWpBLTNP38qk47cwbwIfr1YtkiRtzYgRI2hvb99iu1Rr3plAklTXZsyYQcNml6dvaGhgRpkuT6+6ZVCTJNW1pqYmWlpaGFm5PD0jR46kpaXFEwlUCgY1SVLda2pqoq2tjWnTptHW1mZIU2kY1CRJkkrKoCZJklRSBjVJkqSSMqhJUqG1tZXGxkamTZtGY2Mjra2ttS5JUp2r2b0+JalMWltbaW5u7rxCfXt7e+ftZDywXFKt2KMmSXgbIUnlZFCTJLyNkKRyMqhJElu/XZC3EZJUSwY1ScLbCEkqJ4OaJOFthCSVk0FNkgreRkhS2RjUJEmSSsqgJkmSVFIGNUmSpJIyqEmSJJWUQU2SJKmkDGqSJEklZVCTJEkqKYOaJElSSRnUJEmSSsqgJkmSVFIGNUlS3WtthcZGmDbtszQ2VsalMhhQ6wIkSaql1lZoboY1awCC9vbKOIC3e1Wt2aMmSaprU6d2hLSXrVlTaZdqzaAmSapry5b1rF3angxqklTwOKX6NGJEz9ql7cmgJkm8fJxSezt0PU7JsNb3zZgBDQ2btjU0VNqlWjOobcP8+fNrXYKk7cDjlOpXUxO0tMDIkQDJyJGVcU8kUBkY1Lbh1ltvrXUJkrYDj1Oqb01N0NYG06Z9jrY2Q5rKw6Ambaa1tZXGxkb69etHY2Mjre77qgsepySpjAxqW9Hxz3ratGn+s64jra2tfPjDN9He/lUyv0B7+1f58IdvcvvXAY9TklRGBrUtaG1tpbm5mfbKUcW0t7fT3NzsP+s6cMEFd7Fhw4eAM4DPAmewYcOHuOCCu2pcmarN45QklZFBbQumTp3KmjXHAoOB/sBg1qw5lqkeVdznrVr1KeAu4AXgxeL5rqJdfZ3HKUkqm1IFtYg4KSL+OyKWRsTFtaqjvf1Y4FhgA5V/1huAY4t29W0jgAnAICohfVAx7oFKkqTtrzRBLSL6A98ETgYOBk6PiINrUUv//v8K/DWb/rP+66JdfdmQIWuAY4Cbgc8Xz8cU7ZIkbV9luin7eGBpZj4KEBGzgVOAB7d3IS++OAwYTuWf9HwqPSrH8OKLub1L0Xb29a/vyjnnbOSFF46hEthg0KCNfP3ru9a2MElSXSpNjxowDHisy/jyom27GzkyiqFjgH+m4x/2y+3qq5qaYObMAYwcCRGVA8pnzhzgsUp15h3veEetS1CNuO3rV1m3fZl61LolIpqBZoAhQ4bQ0tLS669x/PFv4Qc/OI4XXhjY2TZo0AaOP/42Wlp+3+uvp/L5l395eXj16srZf6ovDz/8cK1LUI247etXGbd9ZJZjd15EHANMy8wTi/F/BsjML21tmXHjxuWCBQuqUk9ra+XWMcuWVS54OWOGZ4BJkqTXLiIWZua4nixTph613wL7R8Qo4HHgNOCDtSqmqclgJkmSaqs0QS0zN0bEJ4BfUjnVcmZmPlDjsiRJkmqmNEENIDNvAG6odR2SJEllUKazPiVJktSFQU2SJKmkDGqSJEklZVCTJEkqKYOaJElSSRnUJEmSSsqgJkmSVFKluYXUaxERTwLtVX6ZPYGnqvwaKie3ff1y29cvt3392h7bfmRmDu3JAjt0UNseImJBT+/Lpb7BbV+/3Pb1y21fv8q67d31KUmSVFIGNUmSpJIyqG1bS60LUM247euX275+ue3rVym3vceoSZIklZQ9apIkSSVVl0EtIhoj4v5a16Gei4iTIuK/I2JpRFzcpb01IhZHxBe7tP2fiJhSk0JfRUR8JCLOLIbPjoh9al1TWUXEzIhYufnva0TsERHzIuKR4vmNRfvfRsQDEfH/ImJI0faWiLi2FvW/mojYJyJ+UgyPjYhJta6pLCJi34i4JSIeLLbnBV2mue37sIhoi4jfRcSiiFjQpb1ut3tdBjXtmCKiP/BN4GTgYOD0iDg4IsYAazNzDPC/IuIvImJv4KjM/FntKt6yzPx2Zn6/GD0bMKht3feAk7bQfjFwc2buD9xcjAP8A/C/gO8AHyzavgD8n+qW2XOZ+cfMPLUYHQv4z/plG4ELM/Ng4Gjg4xFxcDHNbd/3vTMzx252qYy63e71HNQGFL0wSyLiJxHREBGfjYjfRsT9EdESEQEQEecX3+wWR8Tsom2X4tv+3RFxb0ScUtu3UxfGA0sz89HMfAGYDZwCbAB2joh+wEDgReBzwKVbW1FE9I+Iy4ttvTgi/qFoP77Ynr8rtu9ORXtbRHyp41teRBwREb+MiN9HxEeKeSZExK0RMSciHo2IyyKiqfiM/C4i3lLMNy0iLoqIU4FxQGux3p2r9pPbQWXmbcDTW5h0CjCrGJ4FTCmGXwJ2AhqADRHxduBPmfnI1l4jKr2090TEfRFxc9G2R0T8rPhs3Fl8GejYdrOKb+/tEfE3EfHlYvv+IiIGFvN15/PSWHz+BlH5vH6gmP8Dr/PHtsPLzBWZeU8x/DywBBhWTHbb16f63e6ZWXcPoBFI4NhifCZwEbBHl3n+HXhvMfxHYKdiePfi+YvAGR1twMPALrV+b335AZwK/FuX8Q8B3yiGrwAWARdS+aby3W2s66PAT4ABxfgewGDgMeCAou37wCeL4Tbgo8Xw14DFwG7AUOCJon0C8AywN5U/HI8D04tpFwBXFMPTgIuK4fnAuFr/bMv8KH5f79+s7Zkuw9ExDpwALAT+E/gL4Mauv9dbWPfQYpuP6vgcFM9XAZcWwxOBRV223e1UvhAcBqwBTi6m/RSY0oPPS+f7otKz+o1a/6zL+Ch+TsuAN7jt+/4D+ANwT7Etm7u01+12H0D9eiwzf10M/wA4H/hDRPwTlWS+B/AAlY2/mEqvx8+AnxXL/DUwOSIuKsYHAyOofPPTdpaZn+wYjoj/BM6LiKlUfrHmZebVmy3yLuDbmbmxWP7piDgM+ENmPlzMMwv4OJUQCDC3eP4dsGtWvuk/HxHrI2L3YtpvM3NFUcfvqfzR6Fjmnb3xXrWpzMyIyGJ4HjAPICrHAd4AHFD8nv4PcEFmrumy+NHAbZn5h2L5jt67twF/W7T9KiKGRMQbimn/lZkbIuJ3QH/gF0X776j8Ie7Qnc+LXkVE7ApcR+UL03ObT3fb90lvy8zHI+JNwLyIeCgrPeud6m271/Ouz82vS5LA/wVOzcxDgauphC+Ad1M5NuoI4LcRMYBKov/brOxHH5uZIzLTkFZdjwP7dhkfXrR1isou6IXArsBbMvP9wKkR0dALr7++eH6py3DH+IDN5tl8vq7z6PV7IirHIVI8r+w6sdjeZ1P5vZ0OnEXlW3FTL7z2eoDMfAnYkMXXY165jbvzedFWFLuUrgNaM/M/ukxy2/dhmfl48bySSo/V+GJS3W73eg5qIyLimGL4g1Q2KMBTxbe4UwGictzTvpl5C/AZKl2ruwK/BP4hovM4tsO3Z/F16rfA/hExqtjHfxovf4Pp+MP+SeDLwM68HMb7A4M2W9c8Kr1uA4pl9wD+G2iMiP2KeT4E3Fqdt9LpeSrd4+qZuVT+EFM8z9ls+qeBKzNzAy9/Fl6i0lve1Z3AcRExCjo/BwD/j+IPfERMAJ7aUo9OL/Jz0EXxd/W7wJLM/Opmk932fVRUjv3erWOYyp6rjjO+63a713NQ+28qZxItAd4IfItKL9r9VELYb4v5+gM/KLo876XyQXgG+DyVfdaLI+KBYlxVVOym/ASV7bME+FFmPtBllo8Ds4pu7sVAQ7HdFhbbrKt/o3Lcy+KIuA/4YGauAz4M/LhY7iXg29V8T1TOavx2eDLBFkXENcAdwIERsTwizi0mXQacEBGPUNmNfVmXZfYBxufLZ/xeReX3+SPAD7uuPzOfBJqB/yg+Bx2n9E8DjoyIxcW6z6K6bgEO9oDyTsdS+aI0sfiZLIqXL2Xgtu+79gJuL7bH3cD1mdmxm7Fut7t3JpAkSSqpeu5RkyRJKjWDmiRJUkkZ1CRJkkrKoCZJklRSBjVJkqSSMqhJkiSVlEFNkiSppAxqkiRJJfX/AWSKeIbdF5dzAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(grpc_df, \"GRPC\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "ca6d3c7e",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
